#ifndef H_BUILDBUDDY_CUSTOM_H
#define H_BUILDBUDDY_CUSTOM_H

#include "system_command.h"
#include "view.h"

// Forward Declarations
struct bb_filesystem_change;

/**
 * Types
 **/
struct bb_custom_builder
{
    struct bb_system_command clear_screen_command;
    struct bb_system_command build_all_command;
    struct bb_system_command clean_command;
    struct bb_system_command incremental_build_command;
    unsigned action_counter;
    struct bb_view* view;
};

/**
 * Init/Unit
 **/
void bb_custom_builder_init(struct bb_custom_builder*, struct bb_view*, 
                            char const* build_all_cmd,
                            char const* clean_cmd,
                            char const* incremental_build_cmd);
void bb_custom_builder_uninit(struct bb_custom_builder*);

/**
 * Actions
 **/
void bb_custom_builder_on_filesystem_change(struct bb_custom_builder*, struct bb_filesystem_change const*);

#endif

